const rules = [
    [/#{6}\s?([^\n]+)\n/g, '<h6>$1</h6>'],
    [/#{5}\s?([^\n]+)\n/g, '<h5>$1</h5>'],
    [/#{4}\s?([^\n]+)\n/g, '<h4>$1</h4>'],
    [/#{3}\s?([^\n]+)\n/g, '<h3>$1</h3>'],
    [/#{2}\s?([^\n]+)\n/g, '<h2>$1</h2>'],
    [/#{1}\s?([^\n]+)\n/g, '<h1>$1</h1>'],
    [/\*\*([^\\*]+)\*\*/g, '<b>$1</b>'],
    [/\*([^\\*]+)\*/g, '<i>$1</i>'],
    [/([^\n]+\n)/g, '<p>$1</p>'],
    [/__([^_]+)__/g, '<b>$1</b>'],
    [/_([^_]+)_/g, '<i>$1</i>'],
    [/((\n\d\..+)+)/g, '<ol>$1</ol>'],
    [/((\n\*\.+)+)/g, '<ul>$1</ul>'],
    [/\n\d\.([^\n]+)/g, '<li>$1</li>'],
    [/\[([^\]]+)\]\(([^\\)]+)\)/g, '<a href="$2">$1</a>'],
    [/\n\*([^\n]+)/g, '<li>$1</li>'],
    [/\\!\[([^\]]+)\]\(([^\\)]+)\s\\"([^\\"\\)]+)\\"\)/g, '<img src="$2" alt="$1" title="$3"/>'],

];

export default {
    bind(el){
        let html = el.textContent;
        rules.forEach(([rule, template]) => {
            html = html.replace(rule, template);
        });
        el.innerHTML = html;
    }
}